package cn.com.api.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.com.api.entity.ApiT_stats;
import cn.com.api.mapper.base.T_statsMapperBase;
import cn.com.util.*;

//DAO
public interface ApiT_statsMapper extends T_statsMapperBase {

	/** 根据时间查询数据记录 */
	public Map<String, Object> searchDateByMonthDate(
			@Param("year") Integer year, @Param("month") Integer month,
			@Param("u_id") String u_id);

	/** 根据时间查询查询当月最快的快递员数量 */
	public Map<String, Object> searchFastByMonthDate(
			@Param("year") Integer year, @Param("month") Integer month);

	/** 根据时间 删除当天的 */
	public void deleteDataByTime(@Param("year") Integer year,
			@Param("month") Integer month, @Param("day") Integer day);

	public Map<String, Object> searchShopDay(@Param("year") Integer year,
			@Param("month") Integer month, @Param("day") Integer day,
			@Param("shopid") String shopid);

	public List<Map<String, Object>> shopSevenStat(
			@Param("list") List<String> list, @Param("shopid") String shopid);

	public List<Map<String, Object>> shopStatAll(@Param("shopid") String shopid);

	public Map<String, Object> searById(@Param("id") String id);

	public List<Map<String, Object>> statWeekByShopId(
			@Param("shopid") String shopid);

	public List<Map<String, Object>> searByWeek(@Param("week") String week,
			@Param("shopid") String shopid);

	public List<Map<String, Object>> shopAccount(@Param("name") String name,
			@Param("balance") String balance, @Param("stime") String stime,
			@Param("etime") String etime, @Param("discount") String discount, @Param("cityid") String cityid);

	public Map<String, Object> searByCash(@Param("shopid") String shopid);

	/**
	 * 查看数据总数
	 * @return
	 */
	public int getDateByTime(@Param("year") Integer year,
			@Param("month") Integer month, @Param("day") Integer day);
	
	/**
	 * 统计分站每日信息
	 * @return
	 */
	public int dayStationStat(@Param("year") Integer year,
			@Param("month") Integer month, @Param("day") Integer day);
	
	/**
	 * 查看数据总数
	 * @return
	 */
	public int getMonthDataByTime(@Param("year") Integer year,
			@Param("month") Integer month);
	
	/**
	 * 查看商家某年月的数据总数
	 * @return
	 */
	public int getShopMonthDataByTime(@Param("year") Integer year,
			@Param("month") Integer month);
	
	/**
	 * 根据不同的查询条件分页查询统计数据(按日)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperStatListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	
	/**
	 * 根据不同的查询条件分页查询统计数据(按月)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperMonthStatListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	/**
	 * 生成配送员某年某月的配送统计记录
	 * @param year
	 * @param month
	 */
	public int countUpMonthShipping(@Param("year")int year,@Param("month")int month);
	
	/**
	 * 生成商家某年某月的配送统计记录
	 * @param year
	 * @param month
	 */
	public int countUpShopMonthShipping(@Param("year")int year,@Param("month")int month);
	
	/**
	 *  生成商家从某日起近七天的配送统计记录（周）
	 * @param date 格式为（'2016-02-22'）
	 */
	public int countUpShopWeekShipping(@Param("date")String date);

	
	/**
	 * 根据不同查询条件分得配送员帐单(按月份)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperMonthBillingListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);
	
	/**
	 * 更新记录（月）
	 * @param newStats
	 * @return
	 */
	public int updateMonthStats(ApiT_stats newStats);
	
	/**
	 * 得到配送员的某月记录
	 * @param statId
	 * @return
	 */
	public ApiT_stats getShippingMonthStatsById(@Param("id") Integer statId);
	
	
	/**
	 * 更新商店帐单记录（月）
	 * @param newStats
	 * @return
	 */
	public int updateShopMonthStats(ApiT_stats newStats);
	
	/**
	 * 更新商店帐单记录（周）
	 * @param newStats
	 * @return
	 */
	public int updateShopWeekStats(ApiT_stats newStats);
	
	
	/**
	 * 更新统计记录（日）
	 * @param newStats
	 * @return
	 */
	public int updateStats(ApiT_stats newStats);
	
	/**
	 * 更新统计记录（日）
	 * @param newStats
	 * @return
	 */
	public int updateStationStats(ApiT_stats newStats);
	
	
	/**
	 * 根据不同的查询条件分页查询待打款的配送员账单(按月)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> checkedShipperMonthStatListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	/**
	 * 根据不同的查询条件分页查询商家每月账单(按月)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shopMonthShippingListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	/**
	 * 根据不同的查询条件分页查询商家每周账单(按周)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shopWeekShippingListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	/**
	 * 根据不同的查询条件分页查询分站每日的统计
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> dayStationStatListPage(@Param("cond")ApiT_stats conditions, @Param("page")PageInfo pageInfo);

	
	/**
	 * 
	 * @param id
	 * @return
	 */
	public ApiT_stats getStatsById(@Param("stats_id")int id);
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	public ApiT_stats getShopMonthStatById(@Param("stats_id")int id);
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	public ApiT_stats getShopWeekStatById(@Param("stats_id")int id);
	
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	public ApiT_stats getStationtatById(@Param("stats_id")int id);
	
}
